/*
* jQuery mmenu keyboardNavigation add-on
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
!function(n){function t(t,e){t||(t=this.$pnls.children("."+s.current));var a=n();"default"==e&&(a=t.children("."+s.listview).find("a[href]").not(":hidden"),a.length||(a=t.find(l).not(":hidden")),a.length||(a=this.$menu.children("."+s.navbar).find(l).not(":hidden"))),a.length||(a=this.$menu.children("."+s.tabstart)),a.first().focus()}function e(n){n||(n=this.$pnls.children("."+s.current));var t=this.$pnls.children("."+s.panel),e=t.not(n);e.find(l).attr("tabindex",-1),n.find(l).attr("tabindex",0),n.find("input.mm-toggle, input.mm-check").attr("tabindex",-1)}var a="mmenu",i="keyboardNavigation";n[a].addons[i]={setup:function(){var o=this,c=this.opts[i];this.conf[i];if(d=n[a].glbl,"boolean"!=typeof c&&"string"!=typeof c||(c={enable:c}),"object"!=typeof c&&(c={}),c=this.opts[i]=n.extend(!0,{},n[a].defaults[i],c),c.enable){c.enhance&&this.$menu.addClass(s.keyboardfocus);var r=n(''),f=n('');this.bind("initPanels",function(){this.$menu.prepend(r).append(f).children("."+s.navbar).find(l).attr("tabindex",0)}),this.bind("open",function(){e.call(this),this.__transitionend(this.$menu,function(){t.call(o,null,c.enable)},this.conf.transitionDuration)}),this.bind("openPanel",function(n){e.call(this,n),this.__transitionend(n,function(){t.call(o,n,c.enable)},this.conf.transitionDuration)}),this["_initWindow_"+i](c.enhance)}},add:function(){s=n[a]._c,o=n[a]._d,c=n[a]._e,s.add("tabstart tabend keyboardfocus"),c.add("focusin keydown")},clickAnchor:function(n,t){}},n[a].defaults[i]={enable:!1,enhance:!1},n[a].configuration[i]={},n[a].prototype["_initWindow_"+i]=function(t){d.$wndw.off(c.keydown+"-offCanvas"),d.$wndw.off(c.focusin+"-"+i).on(c.focusin+"-"+i,function(t){if(d.$html.hasClass(s.opened)){var e=n(t.target);e.is("."+s.tabend)&&e.parent().find("."+s.tabstart).focus()}}),d.$wndw.off(c.keydown+"-"+i).on(c.keydown+"-"+i,function(t){var e=n(t.target),a=e.closest("."+s.menu);if(a.length){a.data("mmenu");if(e.is("input, textarea"));else switch(t.keyCode){case 13:(e.is(".mm-toggle")||e.is(".mm-check"))&&e.trigger(c.click);break;case 32:case 37:case 38:case 39:case 40:t.preventDefault()}}}),t&&d.$wndw.on(c.keydown+"-"+i,function(t){var e=n(t.target),a=e.closest("."+s.menu);if(a.length){var i=a.data("mmenu");if(e.is("input, textarea"))switch(t.keyCode){case 27:e.val("")}else switch(t.keyCode){case 8:var c=e.closest("."+s.panel).data(o.parent);c&&c.length&&i.openPanel(c.closest("."+s.panel));break;case 27:a.hasClass(s.offcanvas)&&i.close()}}})};var s,o,c,d,l="input, select, textarea, button, label, a[href]"}(jQuery);